package com.niit.util;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

/**
 * @ProjectName: mybatis_demo
 * @Package: com.niit.util
 * @ClassName: MybatisUtil
 * @Author: zjh
 * @description: TODO
 * @date: 2024/1/3 21:03
 * @version: 1.0
 */
public class MybatisUtil {
    private static SqlSessionFactory sqlSessionFactory = null;
    //静态代码块
    static{
        try {
            /** 1、定义 mybatis 主配置文件的位置， 从类路径开始的相对路径 */
            String configXml = "mybatis-config.xml";
            /** 2、读取主配置文件，使用 mybatis 框架中的 Resources 类 */
            InputStream inputStream = Resources.getResourceAsStream(configXml);
            /** 3、创建 SqlSessionFactory 对象，使用 SqlSessionFactoryBuilder 类 */
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    //4.获取 SqlSession 对象，建立数据库连接
    public static SqlSession getSqlSession(){
        SqlSession sqlSession = null;
        if(sqlSession == null){
            sqlSession = sqlSessionFactory.openSession();
        }
        return sqlSession;
    }
}
